home *** CD-ROM | disk | FTP | other *** search
/ Windows Game Programming for Dummies (2nd Edition) / WinGamProgFD.iso / mac / DirectX SDK / DXSDK / include / dmerror.h < prev    next >
C/C++ Source or Header  |  2001-10-08  |  27KB  |  844 lines

  1. /************************************************************************
  2. *                                                                       *
  3. *   dmerror.h -- Error code returned by DirectMusic API's               *
  4. *                                                                       *
  5. *   Copyright (c) 1998-1999 Microsoft Corporation
  6. *                                                                       *
  7. ************************************************************************/
  8.  
  9. #ifndef _DMERROR_
  10. #define _DMERROR_
  11.  
  12. #define FACILITY_DIRECTMUSIC      0x878       /* Shared with DirectSound */
  13. #define DMUS_ERRBASE              0x1000      /* Make error codes human readable in hex */
  14.  
  15. #ifndef MAKE_HRESULT
  16. #define MAKE_HRESULT(sev,fac,code) \
  17.     ((HRESULT) (((unsigned long)(sev)<<31) | ((unsigned long)(fac)<<16) | ((unsigned long)(code))) )
  18. #endif
  19.     
  20. #define MAKE_DMHRESULTSUCCESS(code)     MAKE_HRESULT(0, FACILITY_DIRECTMUSIC, (DMUS_ERRBASE + (code)))
  21. #define MAKE_DMHRESULTERROR(code)       MAKE_HRESULT(1, FACILITY_DIRECTMUSIC, (DMUS_ERRBASE + (code)))
  22.  
  23. /* DMUS_S_PARTIALLOAD
  24.  *
  25.  * The object could only load partially. This can happen if some components are
  26.  * not registered properly, such as embedded tracks and tools. This can also happen
  27.  * if some content is missing. For example, if a segment uses a DLS collection that
  28.  * is not in the loader's current search directory.
  29.  */
  30. #define DMUS_S_PARTIALLOAD              MAKE_DMHRESULTSUCCESS(0x091)
  31.  
  32. /* DMUS_S_PARTIALDOWNLOAD
  33.  *
  34.  * Return value from IDirectMusicBand::Download() which indicates that
  35.  * some of the instruments safely downloaded, but others failed. This usually
  36.  * occurs when some instruments are on PChannels not supported by the performance
  37.  * or port.
  38.  */
  39. #define DMUS_S_PARTIALDOWNLOAD          MAKE_DMHRESULTSUCCESS(0x092)
  40.  
  41. /* DMUS_S_REQUEUE
  42.  *
  43.  * Return value from IDirectMusicTool::ProcessPMsg() which indicates to the
  44.  * performance that it should cue the PMsg again automatically.
  45.  */
  46. #define DMUS_S_REQUEUE                  MAKE_DMHRESULTSUCCESS(0x200)
  47.  
  48. /* DMUS_S_FREE
  49.  *
  50.  * Return value from IDirectMusicTool::ProcessPMsg() which indicates to the
  51.  * performance that it should free the PMsg automatically.
  52.  */
  53. #define DMUS_S_FREE                     MAKE_DMHRESULTSUCCESS(0x201)
  54.  
  55. /* DMUS_S_END
  56.  *
  57.  * Return value from IDirectMusicTrack::Play() which indicates to the
  58.  * segment that the track has no more data after mtEnd.
  59.  */
  60. #define DMUS_S_END                      MAKE_DMHRESULTSUCCESS(0x202)
  61.  
  62. /* DMUS_S_STRING_TRUNCATED
  63.  *
  64.  * Returned string has been truncated to fit the buffer size.
  65.  */
  66. #define DMUS_S_STRING_TRUNCATED         MAKE_DMHRESULTSUCCESS(0x210)
  67.  
  68. /* DMUS_S_LAST_TOOL
  69.  *
  70.  * Returned from IDirectMusicGraph::StampPMsg(), this indicates that the PMsg
  71.  * is already stamped with the last tool in the graph. The returned PMsg's
  72.  * tool pointer is now NULL.
  73.  */
  74. #define DMUS_S_LAST_TOOL                MAKE_DMHRESULTSUCCESS(0x211)
  75.  
  76. /* DMUS_S_OVER_CHORD
  77.  *
  78.  * Returned from IDirectMusicPerformance::MusicToMIDI(), this indicates 
  79.  * that no note has been calculated because the music value has the note 
  80.  * at a position higher than the top note of the chord. This applies only
  81.  * to DMUS_PLAYMODE_NORMALCHORD play mode. This success code indicates
  82.  * that the caller should not do anything with the note. It is not meant
  83.  * to be played against this chord.
  84.  */
  85. #define DMUS_S_OVER_CHORD               MAKE_DMHRESULTSUCCESS(0x212)
  86.  
  87. /* DMUS_S_UP_OCTAVE
  88.  *
  89.  * Returned from IDirectMusicPerformance::MIDIToMusic(),  and
  90.  * IDirectMusicPerformance::MusicToMIDI(), this indicates 
  91.  * that the note conversion generated a note value that is below 0, 
  92.  * so it has been bumped up one or more octaves to be in the proper
  93.  * MIDI range of 0 through 127. 
  94.  * Note that this is valid for MIDIToMusic() when using play modes
  95.  * DMUS_PLAYMODE_FIXEDTOCHORD and DMUS_PLAYMODE_FIXEDTOKEY, both of
  96.  * which store MIDI values in wMusicValue. With MusicToMIDI(), it is
  97.  * valid for all play modes.
  98.  * Ofcourse, DMUS_PLAYMODE_FIXED will never return this success code.
  99.  */
  100. #define DMUS_S_UP_OCTAVE                MAKE_DMHRESULTSUCCESS(0x213)
  101.  
  102. /* DMUS_S_DOWN_OCTAVE
  103.  *
  104.  * Returned from IDirectMusicPerformance::MIDIToMusic(),  and
  105.  * IDirectMusicPerformance::MusicToMIDI(), this indicates 
  106.  * that the note conversion generated a note value that is above 127, 
  107.  * so it has been bumped down one or more octaves to be in the proper
  108.  * MIDI range of 0 through 127. 
  109.  * Note that this is valid for MIDIToMusic() when using play modes
  110.  * DMUS_PLAYMODE_FIXEDTOCHORD and DMUS_PLAYMODE_FIXEDTOKEY, both of
  111.  * which store MIDI values in wMusicValue. With MusicToMIDI(), it is
  112.  * valid for all play modes.
  113.  * Ofcourse, DMUS_PLAYMODE_FIXED will never return this success code.
  114.  */
  115. #define DMUS_S_DOWN_OCTAVE              MAKE_DMHRESULTSUCCESS(0x214)
  116.  
  117. /* DMUS_S_NOBUFFERCONTROL
  118.  *
  119.  * Although the audio output from the port will be routed to the
  120.  * same device as the given DirectSound buffer, buffer controls
  121.  * such as pan and volume will not affect the output.
  122.  *
  123.  */
  124. #define DMUS_S_NOBUFFERCONTROL          MAKE_DMHRESULTSUCCESS(0x215)
  125.  
  126. /* DMUS_S_GARBAGE_COLLECTED
  127.  *
  128.  * The requested operation was not performed because during CollectGarbage
  129.  * the loader determined that the object had been released.
  130.  */
  131. #define DMUS_S_GARBAGE_COLLECTED        MAKE_DMHRESULTSUCCESS(0x216)
  132.  
  133. /* DMUS_E_DRIVER_FAILED
  134.  *
  135.  * An unexpected error was returned from a device driver, indicating
  136.  * possible failure of the driver or hardware.
  137.  */
  138. #define DMUS_E_DRIVER_FAILED            MAKE_DMHRESULTERROR(0x0101)
  139.  
  140. /* DMUS_E_PORTS_OPEN
  141.  *
  142.  * The requested operation cannot be performed while there are 
  143.  * instantiated ports in any process in the system.
  144.  */
  145. #define DMUS_E_PORTS_OPEN               MAKE_DMHRESULTERROR(0x0102)
  146.  
  147. /* DMUS_E_DEVICE_IN_USE
  148.  *
  149.  * The requested device is already in use (possibly by a non-DirectMusic
  150.  * client) and cannot be opened again.
  151.  */
  152. #define DMUS_E_DEVICE_IN_USE            MAKE_DMHRESULTERROR(0x0103)
  153.  
  154. /* DMUS_E_INSUFFICIENTBUFFER
  155.  *
  156.  * Buffer is not large enough for requested operation.
  157.  */
  158. #define DMUS_E_INSUFFICIENTBUFFER       MAKE_DMHRESULTERROR(0x0104)
  159.  
  160. /* DMUS_E_BUFFERNOTSET
  161.  *
  162.  * No buffer was prepared for the download data.
  163.  */
  164. #define DMUS_E_BUFFERNOTSET             MAKE_DMHRESULTERROR(0x0105)
  165.  
  166. /* DMUS_E_BUFFERNOTAVAILABLE
  167.  *
  168.  * Download failed due to inability to access or create download buffer.
  169.  */
  170. #define DMUS_E_BUFFERNOTAVAILABLE       MAKE_DMHRESULTERROR(0x0106)
  171.  
  172. /* DMUS_E_NOTADLSCOL
  173.  *
  174.  * Error parsing DLS collection. File is corrupt.
  175.  */
  176. #define DMUS_E_NOTADLSCOL               MAKE_DMHRESULTERROR(0x0108)
  177.  
  178. /* DMUS_E_INVALIDOFFSET
  179.  *
  180.  * Wave chunks in DLS collection file are at incorrect offsets.
  181.  */
  182. #define DMUS_E_INVALIDOFFSET            MAKE_DMHRESULTERROR(0x0109)
  183.  
  184. /* DMUS_E_ALREADY_LOADED
  185.  *
  186.  * Second attempt to load a DLS collection that is currently open. 
  187.  */
  188. #define DMUS_E_ALREADY_LOADED           MAKE_DMHRESULTERROR(0x0111)
  189.  
  190. /* DMUS_E_INVALIDPOS
  191.  *
  192.  * Error reading wave data from DLS collection. Indicates bad file.
  193.  */
  194. #define DMUS_E_INVALIDPOS               MAKE_DMHRESULTERROR(0x0113)
  195.  
  196. /* DMUS_E_INVALIDPATCH
  197.  *
  198.  * There is no instrument in the collection that matches patch number.
  199.  */
  200. #define DMUS_E_INVALIDPATCH             MAKE_DMHRESULTERROR(0x0114)
  201.  
  202. /* DMUS_E_CANNOTSEEK
  203.  *
  204.  * The IStream* doesn't support Seek().
  205.  */
  206. #define DMUS_E_CANNOTSEEK               MAKE_DMHRESULTERROR(0x0115)
  207.  
  208. /* DMUS_E_CANNOTWRITE
  209.  *
  210.  * The IStream* doesn't support Write().
  211.  */
  212. #define DMUS_E_CANNOTWRITE              MAKE_DMHRESULTERROR(0x0116)
  213.  
  214. /* DMUS_E_CHUNKNOTFOUND
  215.  *
  216.  * The RIFF parser doesn't contain a required chunk while parsing file.
  217.  */
  218. #define DMUS_E_CHUNKNOTFOUND            MAKE_DMHRESULTERROR(0x0117)
  219.  
  220. /* DMUS_E_INVALID_DOWNLOADID
  221.  *
  222.  * Invalid download id was used in the process of creating a download buffer.
  223.  */
  224. #define DMUS_E_INVALID_DOWNLOADID       MAKE_DMHRESULTERROR(0x0119)
  225.  
  226. /* DMUS_E_NOT_DOWNLOADED_TO_PORT
  227.  *
  228.  * Tried to unload an object that was not downloaded or previously unloaded.
  229.  */
  230. #define DMUS_E_NOT_DOWNLOADED_TO_PORT   MAKE_DMHRESULTERROR(0x0120)
  231.  
  232. /* DMUS_E_ALREADY_DOWNLOADED
  233.  *
  234.  * Buffer was already downloaded to synth.
  235.  */
  236. #define DMUS_E_ALREADY_DOWNLOADED       MAKE_DMHRESULTERROR(0x0121)
  237.  
  238. /* DMUS_E_UNKNOWN_PROPERTY
  239.  *
  240.  * The specified property item was not recognized by the target object.
  241.  */
  242. #define DMUS_E_UNKNOWN_PROPERTY         MAKE_DMHRESULTERROR(0x0122)
  243.  
  244. /* DMUS_E_SET_UNSUPPORTED
  245.  *
  246.  * The specified property item may not be set on the target object.
  247.  */
  248. #define DMUS_E_SET_UNSUPPORTED          MAKE_DMHRESULTERROR(0x0123)
  249.  
  250. /* DMUS_E_GET_UNSUPPORTED
  251.  *
  252.  * The specified property item may not be retrieved from the target object.
  253.  */ 
  254. #define DMUS_E_GET_UNSUPPORTED          MAKE_DMHRESULTERROR(0x0124)
  255.  
  256. /* DMUS_E_NOTMONO
  257.  *
  258.  * Wave chunk has more than one interleaved channel. DLS format requires MONO.
  259.  */
  260. #define DMUS_E_NOTMONO                  MAKE_DMHRESULTERROR(0x0125)
  261.  
  262. /* DMUS_E_BADARTICULATION
  263.  *
  264.  * Invalid articulation chunk in DLS collection.
  265.  */
  266. #define DMUS_E_BADARTICULATION          MAKE_DMHRESULTERROR(0x0126)
  267.  
  268. /* DMUS_E_BADINSTRUMENT
  269.  *
  270.  * Invalid instrument chunk in DLS collection.
  271.  */
  272. #define DMUS_E_BADINSTRUMENT            MAKE_DMHRESULTERROR(0x0127)
  273.  
  274. /* DMUS_E_BADWAVELINK
  275.  *
  276.  * Wavelink chunk in DLS collection points to invalid wave.
  277.  */
  278. #define DMUS_E_BADWAVELINK              MAKE_DMHRESULTERROR(0x0128)
  279.  
  280. /* DMUS_E_NOARTICULATION
  281.  *
  282.  * Articulation missing from instrument in DLS collection.
  283.  */
  284. #define DMUS_E_NOARTICULATION           MAKE_DMHRESULTERROR(0x0129)
  285.  
  286. /* DMUS_E_NOTPCM
  287.  *
  288.  * Downoaded DLS wave is not in PCM format. 
  289. */
  290. #define DMUS_E_NOTPCM                   MAKE_DMHRESULTERROR(0x012A)
  291.  
  292. /* DMUS_E_BADWAVE
  293.  *
  294.  * Bad wave chunk in DLS collection
  295.  */
  296. #define DMUS_E_BADWAVE                  MAKE_DMHRESULTERROR(0x012B)
  297.  
  298. /* DMUS_E_BADOFFSETTABLE
  299.  *
  300.  * Offset Table for download buffer has errors. 
  301.  */
  302. #define DMUS_E_BADOFFSETTABLE           MAKE_DMHRESULTERROR(0x012C)
  303.  
  304. /* DMUS_E_UNKNOWNDOWNLOAD
  305.  *
  306.  * Attempted to download unknown data type.
  307.  */
  308. #define DMUS_E_UNKNOWNDOWNLOAD          MAKE_DMHRESULTERROR(0x012D)
  309.  
  310. /* DMUS_E_NOSYNTHSINK
  311.  *
  312.  * The operation could not be completed because no sink was connected to
  313.  * the synthesizer.
  314.  */
  315. #define DMUS_E_NOSYNTHSINK              MAKE_DMHRESULTERROR(0x012E)
  316.  
  317. /* DMUS_E_ALREADYOPEN
  318.  *
  319.  * An attempt was made to open the software synthesizer while it was already 
  320.  * open.
  321.  * ASSERT?
  322.  */
  323. #define DMUS_E_ALREADYOPEN              MAKE_DMHRESULTERROR(0x012F)
  324.  
  325. /* DMUS_E_ALREADYCLOSE
  326.  *
  327.  * An attempt was made to close the software synthesizer while it was already 
  328.  * open.
  329.  * ASSERT?
  330.  */
  331. #define DMUS_E_ALREADYCLOSED            MAKE_DMHRESULTERROR(0x0130)
  332.  
  333. /* DMUS_E_SYNTHNOTCONFIGURED
  334.  *
  335.  * The operation could not be completed because the software synth has not 
  336.  * yet been fully configured.
  337.  * ASSERT?
  338.  */
  339. #define DMUS_E_SYNTHNOTCONFIGURED       MAKE_DMHRESULTERROR(0x0131)
  340.  
  341. /* DMUS_E_SYNTHACTIVE
  342.  *
  343.  * The operation cannot be carried out while the synthesizer is active.
  344.  */
  345. #define DMUS_E_SYNTHACTIVE              MAKE_DMHRESULTERROR(0x0132)
  346.  
  347. /* DMUS_E_CANNOTREAD
  348.  *
  349.  * An error occurred while attempting to read from the IStream* object.
  350.  */
  351. #define DMUS_E_CANNOTREAD               MAKE_DMHRESULTERROR(0x0133)
  352.  
  353. /* DMUS_E_DMUSIC_RELEASED
  354.  *
  355.  * The operation cannot be performed because the final instance of the
  356.  * DirectMusic object was released. Ports cannot be used after final 
  357.  * release of the DirectMusic object.
  358.  */
  359. #define DMUS_E_DMUSIC_RELEASED          MAKE_DMHRESULTERROR(0x0134)
  360.  
  361. /* DMUS_E_BUFFER_EMPTY
  362.  *
  363.  * There was no data in the referenced buffer.
  364.  */
  365. #define DMUS_E_BUFFER_EMPTY             MAKE_DMHRESULTERROR(0x0135)
  366.  
  367. /* DMUS_E_BUFFER_FULL
  368.  *
  369.  * There is insufficient space to insert the given event into the buffer.
  370.  */
  371. #define DMUS_E_BUFFER_FULL              MAKE_DMHRESULTERROR(0x0136)
  372.  
  373. /* DMUS_E_PORT_NOT_CAPTURE
  374.  *
  375.  * The given operation could not be carried out because the port is a
  376.  * capture port.
  377.  */
  378. #define DMUS_E_PORT_NOT_CAPTURE         MAKE_DMHRESULTERROR(0x0137)
  379.  
  380. /* DMUS_E_PORT_NOT_RENDER
  381.  *
  382.  * The given operation could not be carried out because the port is a
  383.  * render port.
  384.  */
  385. #define DMUS_E_PORT_NOT_RENDER          MAKE_DMHRESULTERROR(0x0138)
  386.  
  387. /* DMUS_E_DSOUND_NOT_SET
  388.  *
  389.  * The port could not be created because no DirectSound has been specified.
  390.  * Specify a DirectSound interface via the IDirectMusic::SetDirectSound
  391.  * method; pass NULL to have DirectMusic manage usage of DirectSound.
  392.  */
  393. #define DMUS_E_DSOUND_NOT_SET           MAKE_DMHRESULTERROR(0x0139)
  394.  
  395. /* DMUS_E_ALREADY_ACTIVATED
  396.  *
  397.  * The operation cannot be carried out while the port is active.
  398.  */
  399. #define DMUS_E_ALREADY_ACTIVATED        MAKE_DMHRESULTERROR(0x013A)
  400.  
  401. /* DMUS_E_INVALIDBUFFER
  402.  *
  403.  * Invalid DirectSound buffer was handed to port. 
  404.  */
  405. #define DMUS_E_INVALIDBUFFER            MAKE_DMHRESULTERROR(0x013B)
  406.  
  407. /* DMUS_E_WAVEFORMATNOTSUPPORTED
  408.  *
  409.  * Invalid buffer format was handed to the synth sink.
  410.  */
  411. #define DMUS_E_WAVEFORMATNOTSUPPORTED   MAKE_DMHRESULTERROR(0x013C)
  412.  
  413. /* DMUS_E_SYNTHINACTIVE
  414.  *
  415.  * The operation cannot be carried out while the synthesizer is inactive.
  416.  */
  417. #define DMUS_E_SYNTHINACTIVE            MAKE_DMHRESULTERROR(0x013D)
  418.  
  419. /* DMUS_E_DSOUND_ALREADY_SET
  420.  *
  421.  * IDirectMusic::SetDirectSound has already been called. It may not be
  422.  * changed while in use.
  423.  */
  424. #define DMUS_E_DSOUND_ALREADY_SET       MAKE_DMHRESULTERROR(0x013E)
  425.  
  426. /* DMUS_E_INVALID_EVENT
  427.  *
  428.  * The given event is invalid (either it is not a valid MIDI message
  429.  * or it makes use of running status). The event cannot be packed
  430.  * into the buffer.
  431.  */
  432. #define DMUS_E_INVALID_EVENT            MAKE_DMHRESULTERROR(0x013F)
  433.  
  434. /* DMUS_E_UNSUPPORTED_STREAM
  435.  *
  436.  * The IStream* object does not contain data supported by the loading object.
  437.  */
  438. #define DMUS_E_UNSUPPORTED_STREAM       MAKE_DMHRESULTERROR(0x0150)
  439.  
  440. /* DMUS_E_ALREADY_INITED
  441.  *
  442.  * The object has already been initialized.
  443.  */
  444. #define DMUS_E_ALREADY_INITED           MAKE_DMHRESULTERROR(0x0151)
  445.  
  446. /* DMUS_E_INVALID_BAND
  447.  *
  448.  * The file does not contain a valid band.
  449.  */
  450. #define DMUS_E_INVALID_BAND             MAKE_DMHRESULTERROR(0x0152)
  451.  
  452. /* DMUS_E_TRACK_HDR_NOT_FIRST_CK
  453.  *
  454.  * The IStream* object's data does not have a track header as the first chunk,
  455.  * and therefore can not be read by the segment object.
  456.  */
  457. #define DMUS_E_TRACK_HDR_NOT_FIRST_CK   MAKE_DMHRESULTERROR(0x0155)
  458.  
  459. /* DMUS_E_TOOL_HDR_NOT_FIRST_CK
  460.  *
  461.  * The IStream* object's data does not have a tool header as the first chunk,
  462.  * and therefore can not be read by the graph object.
  463.  */
  464. #define DMUS_E_TOOL_HDR_NOT_FIRST_CK    MAKE_DMHRESULTERROR(0x0156)
  465.  
  466. /* DMUS_E_INVALID_TRACK_HDR
  467.  *
  468.  * The IStream* object's data contains an invalid track header (ckid is 0 and
  469.  * fccType is NULL,) and therefore can not be read by the segment object.
  470.  */
  471. #define DMUS_E_INVALID_TRACK_HDR        MAKE_DMHRESULTERROR(0x0157)
  472.  
  473. /* DMUS_E_INVALID_TOOL_HDR
  474.  *
  475.  * The IStream* object's data contains an invalid tool header (ckid is 0 and
  476.  * fccType is NULL,) and therefore can not be read by the graph object.
  477.  */
  478. #define DMUS_E_INVALID_TOOL_HDR         MAKE_DMHRESULTERROR(0x0158)
  479.  
  480. /* DMUS_E_ALL_TOOLS_FAILED
  481.  *
  482.  * The graph object was unable to load all tools from the IStream* object data.
  483.  * This may be due to errors in the stream, or the tools being incorrectly
  484.  * registered on the client.
  485.  */
  486. #define DMUS_E_ALL_TOOLS_FAILED         MAKE_DMHRESULTERROR(0x0159)
  487.  
  488. /* DMUS_E_ALL_TRACKS_FAILED
  489.  *
  490.  * The segment object was unable to load all tracks from the IStream* object data.
  491.  * This may be due to errors in the stream, or the tracks being incorrectly
  492.  * registered on the client.
  493.  */
  494. #define DMUS_E_ALL_TRACKS_FAILED        MAKE_DMHRESULTERROR(0x0160)
  495.  
  496. /* DMUS_E_NOT_FOUND
  497.  *
  498.  * The requested item was not contained by the object.
  499.  */
  500. #define DMUS_E_NOT_FOUND                MAKE_DMHRESULTERROR(0x0161)
  501.  
  502. /* DMUS_E_NOT_INIT
  503.  *
  504.  * A required object is not initialized or failed to initialize.
  505.  */
  506. #define DMUS_E_NOT_INIT                 MAKE_DMHRESULTERROR(0x0162)
  507.  
  508. /* DMUS_E_TYPE_DISABLED
  509.  *
  510.  * The requested parameter type is currently disabled. Parameter types may
  511.  * be enabled and disabled by certain calls to SetParam().
  512.  */
  513. #define DMUS_E_TYPE_DISABLED            MAKE_DMHRESULTERROR(0x0163)
  514.  
  515. /* DMUS_E_TYPE_UNSUPPORTED
  516.  *
  517.  * The requested parameter type is not supported on the object.
  518.  */
  519. #define DMUS_E_TYPE_UNSUPPORTED         MAKE_DMHRESULTERROR(0x0164)
  520.  
  521. /* DMUS_E_TIME_PAST
  522.  *
  523.  * The time is in the past, and the operation can not succeed.
  524.  */
  525. #define DMUS_E_TIME_PAST                MAKE_DMHRESULTERROR(0x0165)
  526.  
  527. /* DMUS_E_TRACK_NOT_FOUND
  528.  *
  529.  * The requested track is not contained by the segment.
  530.  */
  531. #define DMUS_E_TRACK_NOT_FOUND            MAKE_DMHRESULTERROR(0x0166)
  532.  
  533. /* DMUS_E_TRACK_NO_CLOCKTIME_SUPPORT
  534.  *
  535.  * The track does not support clock time playback or getparam.
  536.  */
  537. #define DMUS_E_TRACK_NO_CLOCKTIME_SUPPORT   MAKE_DMHRESULTERROR(0x0167)
  538.  
  539. /* DMUS_E_NO_MASTER_CLOCK
  540.  *
  541.  * There is no master clock in the performance. Be sure to call
  542.  * IDirectMusicPerformance::Init().
  543.  */
  544. #define DMUS_E_NO_MASTER_CLOCK          MAKE_DMHRESULTERROR(0x0170)
  545.  
  546. /* DMUS_E_LOADER_NOCLASSID
  547.  *
  548.  * The class id field is required and missing in the DMUS_OBJECTDESC.
  549.  */
  550. #define DMUS_E_LOADER_NOCLASSID         MAKE_DMHRESULTERROR(0x0180)
  551.  
  552. /* DMUS_E_LOADER_BADPATH
  553.  *
  554.  * The requested file path is invalid.
  555.  */
  556. #define DMUS_E_LOADER_BADPATH           MAKE_DMHRESULTERROR(0x0181)
  557.  
  558. /* DMUS_E_LOADER_FAILEDOPEN
  559.  *
  560.  * File open failed - either file doesn't exist or is locked.
  561.  */
  562. #define DMUS_E_LOADER_FAILEDOPEN        MAKE_DMHRESULTERROR(0x0182)
  563.  
  564. /* DMUS_E_LOADER_FORMATNOTSUPPORTED
  565.  *
  566.  * Search data type is not supported.
  567.  */
  568. #define DMUS_E_LOADER_FORMATNOTSUPPORTED    MAKE_DMHRESULTERROR(0x0183)
  569.  
  570. /* DMUS_E_LOADER_FAILEDCREATE
  571.  *
  572.  * Unable to find or create object.
  573.  */
  574. #define DMUS_E_LOADER_FAILEDCREATE      MAKE_DMHRESULTERROR(0x0184)
  575.  
  576. /* DMUS_E_LOADER_OBJECTNOTFOUND
  577.  *
  578.  * Object was not found.
  579.  */
  580. #define DMUS_E_LOADER_OBJECTNOTFOUND    MAKE_DMHRESULTERROR(0x0185)
  581.  
  582. /* DMUS_E_LOADER_NOFILENAME
  583.  *
  584.  * The file name is missing from the DMUS_OBJECTDESC.
  585.  */
  586. #define DMUS_E_LOADER_NOFILENAME        MAKE_DMHRESULTERROR(0x0186)
  587.  
  588. /* DMUS_E_INVALIDFILE
  589.  *
  590.  * The file requested is not a valid file.
  591.  */
  592. #define DMUS_E_INVALIDFILE              MAKE_DMHRESULTERROR(0x0200)
  593.  
  594. /* DMUS_E_ALREADY_EXISTS
  595.  *
  596.  * The tool is already contained in the graph. Create a new instance.
  597.  */
  598. #define DMUS_E_ALREADY_EXISTS           MAKE_DMHRESULTERROR(0x0201)
  599.  
  600. /* DMUS_E_OUT_OF_RANGE
  601.  *
  602.  * Value is out of range, for instance the requested length is longer than
  603.  * the segment.
  604.  */
  605. #define DMUS_E_OUT_OF_RANGE             MAKE_DMHRESULTERROR(0x0202)
  606.  
  607. /* DMUS_E_SEGMENT_INIT_FAILED
  608.  *
  609.  * Segment initialization failed, most likely due to a critical memory situation.
  610.  */
  611. #define DMUS_E_SEGMENT_INIT_FAILED      MAKE_DMHRESULTERROR(0x0203)
  612.  
  613. /* DMUS_E_ALREADY_SENT
  614.  *
  615.  * The DMUS_PMSG has already been sent to the performance object via
  616.  * IDirectMusicPerformance::SendPMsg().
  617.  */
  618. #define DMUS_E_ALREADY_SENT             MAKE_DMHRESULTERROR(0x0204)
  619.  
  620. /* DMUS_E_CANNOT_FREE
  621.  *
  622.  * The DMUS_PMSG was either not allocated by the performance via
  623.  * IDirectMusicPerformance::AllocPMsg(), or it was already freed via
  624.  * IDirectMusicPerformance::FreePMsg().
  625.  */
  626. #define DMUS_E_CANNOT_FREE              MAKE_DMHRESULTERROR(0x0205)
  627.  
  628. /* DMUS_E_CANNOT_OPEN_PORT
  629.  *
  630.  * The default system port could not be opened.
  631.  */
  632. #define DMUS_E_CANNOT_OPEN_PORT         MAKE_DMHRESULTERROR(0x0206)
  633.  
  634. /* DMUS_E_CANNOT_CONVERT
  635.  *
  636.  * A call to MIDIToMusic() or MusicToMIDI() resulted in an error because
  637.  * the requested conversion could not happen. This usually occurs when the
  638.  * provided DMUS_CHORD_KEY structure has an invalid chord or scale pattern.
  639.  */
  640. #define DMUS_E_CANNOT_CONVERT           MAKE_DMHRESULTERROR(0x0207)
  641. /* misspelling in previous versions of DirectX preserved for backward compatibility */
  642. #define DMUS_E_CONNOT_CONVERT           DMUS_E_CANNOT_CONVERT
  643.  
  644. /* DMUS_E_DESCEND_CHUNK_FAIL
  645.  * 
  646.  * DMUS_E_DESCEND_CHUNK_FAIL is returned when the end of the file 
  647.  * was reached before the desired chunk was found.
  648.  */
  649. #define DMUS_E_DESCEND_CHUNK_FAIL       MAKE_DMHRESULTERROR(0x0210)
  650.  
  651. /* DMUS_E_NOT_LOADED
  652.  *
  653.  * An attempt to use this object failed because it first needs to
  654.  * be loaded.
  655.  */
  656. #define DMUS_E_NOT_LOADED               MAKE_DMHRESULTERROR(0x0211)
  657.  
  658. /* DMUS_E_SCRIPT_LANGUAGE_INCOMPATIBLE
  659.  *
  660.  * The activeX scripting engine for the script's language is not compatible with
  661.  * DirectMusic.
  662.  *
  663.  */
  664. #define DMUS_E_SCRIPT_LANGUAGE_INCOMPATIBLE  MAKE_DMHRESULTERROR(0x0213)
  665.  
  666. /* DMUS_E_SCRIPT_UNSUPPORTED_VARTYPE
  667.  *
  668.  * A varient was used that had a type that is not supported by DirectMusic.
  669.  *
  670.  */
  671. #define DMUS_E_SCRIPT_UNSUPPORTED_VARTYPE    MAKE_DMHRESULTERROR(0x0214)
  672.  
  673. /* DMUS_E_SCRIPT_ERROR_IN_SCRIPT
  674.  *
  675.  * An error was encountered while parsing or executing the script.
  676.  * The pErrorInfo parameter (if supplied) was filled with information about the error.
  677.  */
  678. #define DMUS_E_SCRIPT_ERROR_IN_SCRIPT        MAKE_DMHRESULTERROR(0x0215)
  679.  
  680. /* DMUS_E_SCRIPT_CANTLOAD_OLEAUT32
  681.  *
  682.  * Loading of oleaut32.dll failed.  VBScript and other activeX scripting languages
  683.  * require use of oleaut32.dll.  On platforms where oleaut32.dll is not present, only
  684.  * the DirectMusicScript language, which doesn't require oleaut32.dll can be used.
  685.  */
  686. #define DMUS_E_SCRIPT_CANTLOAD_OLEAUT32      MAKE_DMHRESULTERROR(0x0216)
  687.  
  688. /* DMUS_E_SCRIPT_LOADSCRIPT_ERROR
  689.  *
  690.  * An error occured while parsing a script loaded using LoadScript.  The script that
  691.  * was loaded contains an error.
  692.  */
  693. #define DMUS_E_SCRIPT_LOADSCRIPT_ERROR       MAKE_DMHRESULTERROR(0x0217)
  694.  
  695. /* DMUS_E_SCRIPT_INVALID_FILE
  696.  *
  697.  * The script file is invalid.
  698.  */
  699. #define DMUS_E_SCRIPT_INVALID_FILE           MAKE_DMHRESULTERROR(0x0218)
  700.  
  701. /* DMUS_E_INVALID_SCRIPTTRACK
  702.  *
  703.  * The file contains an invalid script track.
  704.  */
  705. #define DMUS_E_INVALID_SCRIPTTRACK           MAKE_DMHRESULTERROR(0x0219)
  706.  
  707. /* DMUS_E_SCRIPT_VARIABLE_NOT_FOUND
  708.  *
  709.  * The script does not contain a variable with the specified name.
  710.  */
  711. #define DMUS_E_SCRIPT_VARIABLE_NOT_FOUND     MAKE_DMHRESULTERROR(0x021A)
  712.  
  713. /* DMUS_E_SCRIPT_ROUTINE_NOT_FOUND
  714.  *
  715.  * The script does not contain a routine with the specified name.
  716.  */
  717. #define DMUS_E_SCRIPT_ROUTINE_NOT_FOUND      MAKE_DMHRESULTERROR(0x021B)
  718.  
  719. /* DMUS_E_SCRIPT_CONTENT_READONLY
  720.  *
  721.  * Scripts variables for content referenced or embedded in a script cannot be set.
  722.  */
  723. #define DMUS_E_SCRIPT_CONTENT_READONLY       MAKE_DMHRESULTERROR(0x021C)
  724.  
  725. /* DMUS_E_SCRIPT_NOT_A_REFERENCE
  726.  *
  727.  * Attempt was made to set a script's variable by reference to a value that was
  728.  * not an object type.
  729.  */
  730. #define DMUS_E_SCRIPT_NOT_A_REFERENCE        MAKE_DMHRESULTERROR(0x021D)
  731.  
  732. /* DMUS_E_SCRIPT_VALUE_NOT_SUPPORTED
  733.  *
  734.  * Attempt was made to set a script's variable by value to an object that does
  735.  * not support a default value property.
  736.  */
  737. #define DMUS_E_SCRIPT_VALUE_NOT_SUPPORTED    MAKE_DMHRESULTERROR(0x021E)
  738.  
  739. /* DMUS_E_INVALID_SEGMENTTRIGGERTRACK
  740.  *
  741.  * The file contains an invalid segment trigger track.
  742.  */
  743. #define DMUS_E_INVALID_SEGMENTTRIGGERTRACK   MAKE_DMHRESULTERROR(0x0220)
  744.  
  745. /* DMUS_E_INVALID_LYRICSTRACK
  746.  *
  747.  * The file contains an invalid lyrics track.
  748.  */
  749. #define DMUS_E_INVALID_LYRICSTRACK           MAKE_DMHRESULTERROR(0x0221)
  750.  
  751. /* DMUS_E_INVALID_PARAMCONTROLTRACK
  752.  *
  753.  * The file contains an invalid parameter control track.
  754.  */
  755. #define DMUS_E_INVALID_PARAMCONTROLTRACK     MAKE_DMHRESULTERROR(0x0222)
  756.  
  757. /* DMUS_E_AUDIOVBSCRIPT_SYNTAXERROR
  758.  *
  759.  * A script written in AudioVBScript could not be read because it contained a statement that
  760.  * is not allowed by the AudioVBScript language.
  761.  */
  762. #define DMUS_E_AUDIOVBSCRIPT_SYNTAXERROR     MAKE_DMHRESULTERROR(0x0223)
  763.  
  764. /* DMUS_E_AUDIOVBSCRIPT_RUNTIMEERROR
  765.  *
  766.  * A script routine written in AudioVBScript failed because an invalid operation occurred.  For example,
  767.  * adding the number 3 to a segment object would produce this error.  So would attempting to call a routine
  768.  * that doesn't exist.
  769.  */
  770. #define DMUS_E_AUDIOVBSCRIPT_RUNTIMEERROR     MAKE_DMHRESULTERROR(0x0224)
  771.  
  772. /* DMUS_E_AUDIOVBSCRIPT_OPERATIONFAILURE
  773.  *
  774.  * A script routine written in AudioVBScript failed because a function outside of a script failed to complete.
  775.  * For example, a call to PlaySegment that fails to play because of low memory would return this error.
  776.  */
  777. #define DMUS_E_AUDIOVBSCRIPT_OPERATIONFAILURE     MAKE_DMHRESULTERROR(0x0225)
  778.  
  779. /* DMUS_E_AUDIOPATHS_NOT_VALID
  780.  *
  781.  * The Performance has set up some PChannels using the AssignPChannel command, which 
  782.  * makes it not capable of supporting audio paths.
  783.  */
  784. #define DMUS_E_AUDIOPATHS_NOT_VALID     MAKE_DMHRESULTERROR(0x0226)
  785.  
  786. /* DMUS_E_AUDIOPATHS_IN_USE
  787.  *
  788.  * This is the inverse of the previous error. 
  789.  * The Performance has set up some audio paths, which makes is incompatible
  790.  * with the calls to allocate pchannels, etc. 
  791.  */
  792. #define DMUS_E_AUDIOPATHS_IN_USE     MAKE_DMHRESULTERROR(0x0227)
  793.  
  794. /* DMUS_E_NO_AUDIOPATH_CONFIG
  795.  *
  796.  * A segment or song was asked for its embedded audio path configuration,
  797.  * but there isn't any. 
  798.  */
  799. #define DMUS_E_NO_AUDIOPATH_CONFIG     MAKE_DMHRESULTERROR(0x0228)
  800.  
  801. /* DMUS_E_AUDIOPATH_INACTIVE
  802.  *
  803.  * An audiopath is inactive, perhaps because closedown was called.
  804.  */
  805. #define DMUS_E_AUDIOPATH_INACTIVE     MAKE_DMHRESULTERROR(0x0229)
  806.  
  807. /* DMUS_E_AUDIOPATH_NOBUFFER
  808.  *
  809.  * An audiopath failed to create because a requested buffer could not be created.
  810.  */
  811. #define DMUS_E_AUDIOPATH_NOBUFFER     MAKE_DMHRESULTERROR(0x022A)
  812.  
  813. /* DMUS_E_AUDIOPATH_NOPORT
  814.  *
  815.  * An audiopath could not be used for playback because it lacked port assignments.
  816.  */
  817. #define DMUS_E_AUDIOPATH_NOPORT     MAKE_DMHRESULTERROR(0x022B)
  818.  
  819. /* DMUS_E_NO_AUDIOPATH
  820.  *
  821.  * Attempt was made to play segment in audiopath mode and there was no audiopath.
  822.  */
  823. #define DMUS_E_NO_AUDIOPATH     MAKE_DMHRESULTERROR(0x022C)
  824.  
  825. /* DMUS_E_INVALIDCHUNK
  826.  *
  827.  * Invalid data was found in a RIFF file chunk.
  828.  */
  829. #define DMUS_E_INVALIDCHUNK     MAKE_DMHRESULTERROR(0x022D)
  830.  
  831. /* DMUS_E_AUDIOPATH_NOGLOBALFXBUFFER
  832.  *
  833.  * Attempt was made to create an audiopath that sends to a global effects buffer which did not exist.
  834.  */
  835. #define DMUS_E_AUDIOPATH_NOGLOBALFXBUFFER     MAKE_DMHRESULTERROR(0x022E)
  836.  
  837. /* DMUS_E_INVALID_CONTAINER_OBJECT
  838.  *
  839.  * The file does not contain a valid container object.
  840.  */
  841. #define DMUS_E_INVALID_CONTAINER_OBJECT    MAKE_DMHRESULTERROR(0x022F)
  842.  
  843. #endif
  844.